#include <stdio.h>
#include <stdlib.h>
int main(){
    int m,n,nums[1000][4]={0},tmp1,tmp2,cnt=0,max=0;
    _Bool rd[100][100]={0};
    scanf("%d %d",&n,&m);
    for(int i=0;i<m;i++){
        scanf("%d %d",&tmp1,&tmp2);
        rd[tmp1][tmp2]=1;    
        nums[tmp1][0]++;
        nums[tmp2][1]++;
    }
    for(int i=1;i<=n,cnt<=n*n;i=i%n+1){
        cnt++;
        if(nums[i][1]||nums[i][3])
        continue;
        // printf("%d %d\n",i,nums[i][2]);
        if((!nums[i][0])&&nums[i][2]>max){
            max=(nums[i][2]+1)%80112002;
        }
        nums[i][3]=1;
        for(int j=1;j<=n;j++){
            if(rd[i][j]&&(!nums[j][3])){
                nums[j][1]--;
 
                if(nums[i][2]+1>nums[j][2]){
                    nums[j][2]=(nums[i][2]+1)%80112002;
                }
            }
        }
    }
    printf("%d",max);
    return 0;
}